﻿using System;

namespace MagicTraderLib.Schema
{
    public class Result
    {
        public Kaart Mijn;
        public Kaart Zijn;

        public Result(Kaart mijn, Kaart zijn)
        {
            Mijn = mijn;
            Zijn = zijn;
        }

        public int Aantal
        {
            get
            {
                if (Zijn.AantalHaves <= Mijn.AantalWants)
                    return Zijn.AantalHaves;

                return Mijn.AantalWants;
            }
        }

        public decimal TotaalPrijs
        {
            get { return Zijn.Prijs*Aantal; }
        }

        public string Output_Excel()
        {
            const string sep = ";";
            string result = String.Format(
                "{1}{0}{2}{0}{3}{0}{4}{0}{5}{0}{6}{0}{7}{0}{8}{0}{9}{10}{0}{11}"
                , sep
                , Mijn.AantalWants
                , Zijn.AantalHaves
                , Aantal
                , Zijn.NaamDecoded
                , Zijn.Set
                , Zijn.Kleur
                , Zijn.Rarety
                , Zijn.Prijs
                , TotaalPrijs
                , Mijn.Foil ? "Foil" : String.Empty
                , Zijn.Foil ? "Foil" : String.Empty);
            return result;
        }

        public string Output_PPLinks()
        {
            string afk = Zijn.Set;
            try
            {
                afk = Series.BepaalAfkorting(Zijn.Set);
            }
            catch { }
            
            string result = String.Format(
                "{0}x {{={1}|{2}}}  ({3})"
                , Aantal
                , Zijn.NaamDecoded
                , afk
                , Zijn.Prijs * Aantal);
            return result;
        }

        public override string ToString()
        {
            string result = String.Format(
                "{0}x {{={1}|{2}}}  ({3})"
                , Aantal
                , Zijn.NaamDecoded
                , Series.BepaalAfkorting(Zijn.Set)
                , Zijn.Prijs * Aantal);
            return result;

        }
    }
}
